在資料庫連線中,如果連線數越來越多,在進行管理時常常會使用 connection pool 進行管理。
不過,在目前的 Kotlin Exposed 框架中,是沒有支援 connection pool 的。這樣的話,是不是代表我們無法使用 connection pool 了呢?
這就要介紹到 Kotlin 的特性,以及另外一個套件,HikariCP,了!
Kotlin 這個語言,在進行設計時,就已經考量到了 Java 現有大量的套件,以及許多現存的專案。
也因為如此,Kotlin 在設計時,除了針對語法進行許多的最佳化設計,在和現有 Java 執行檔的互動上,也有著很高的相容性。
也就是說,現有的 Java 套件,或者現有Java 的專案,有很高的機率是可以和 Kotlin 的程式碼相容的。
今天我們要介紹的 HikariCP 這個套件,就是一個 Java 針對 connection pool 所建立的套件,我們一樣可以拿來套用在 Kotlin 專案上面。
安裝方式跟過去套件類似,我們在 build.gradle.kts
內加上
implementation("com.zaxxer:HikariCP:2.7.8")
然後重新 load 一次設定
這樣之後,我們就可以在程式裡面,使用 HikariCP 的服務來進行連線的設定。
比方說
Database.connect(hikari())
private fun hikari(): HikariDataSource {
val config = HikariConfig()
// 設置
config.validate()
return HikariDataSource(config)
}
由於 HikariCP 套件的使用功能很多,自己就可以獨立撰寫一系列的說明與教學,這邊不多加介紹 HikariCP 的使用方式。我們純粹以這個案例,來說明 Kotlin 和 Java 套件的整合,以及我們可以怎麼在遇到問題時,透過既有的 Java 套件,來解決我們的問題。